A Tool for Logic Program Refinement

نویسندگان

  • R. Colvin
  • I. Hayes
  • R. Nickson
  • P. Strooper
  • Robert Colvin
  • Ian Hayes Ray Nickson
  • Paul Strooper
چکیده

The re nement calculus provides a method for transforming speci cations to executable code, maintaining the correctness of the code with respect to its speci cation. In the original re nement calculus, the target language is an imperative programming language, but more recently a re nement calculus for deriving logic programs has been proposed. Due to the amount of detail involved, the manual re nement of programs is a tedious and timeconsuming task, and is therefore an obvious candidate for tool support. Several tools exist for the imperative re nement calculus, and in this paper we describe a prototype tool to support the recently developed re nement calculus for logic programs. The tool was developed using Ergo, an interactive theorem prover. To provide tool support for the calculus, its underlying semantic model was de ned within Ergo, and the laws of the calculus were proven in that framework. We illustrate the tool using a simple example re nement.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

The Shadow Knows: Refinement and security in sequential programs

Stepwise refinement is a crucial conceptual tool for system development, encouraging program construction via a number of separate correctness-preserving stages which ideally can be understood in isolation. A crucial conceptual component of security is an adversary’s ignorance of concealed information. We suggest a novel method of combining these two ideas. Our suggestion is based on a mathemat...

متن کامل

A tool for assisting the understanding and formal development of software

This paper presents a program understanding tool which documents programs by generating predicate logic annotations of their loops. The tool is based on an analysis by decomposition approach which utilizes a knowledge-base ofpla.ns in recognizing the high-level concepts in programs. Using data. :flow analysis, the decomposition encapsulates closely related statements in separate pa.rts, ca1.led...

متن کامل

Abstraction Refinement for 3-Valued-Logic Analysis

ion Refinement for 3-Valued-Logic Analysis Alexey Loginov, Thomas Reps, and Mooly Sagiv 1 Comp. Sci. Dept., University of Wisconsin; {alexey,reps}@cs.wisc.edu 2 School of Comp. Sci., Tel-Aviv University; [email protected] Abstract. This paper concerns the question of how to create abstractions that are useful for program analysis. It presents a method that refines an abstraction automatical...

متن کامل

Algebras for Program Correctness in Isabelle/HOL

We present a reference formalisation of Kleene algebra and demonic refinement algebra with tests in Isabelle/HOL. It provides three different formalisations of tests. Our structured comprehensive libraries for these algebras extend an existing Kleene algebra library. It includes an algebraic account of Hoare logic for partial correctness and several refinement and concurrency control laws in a ...

متن کامل

Kleene Algebra with Tests and Demonic Refinement Algebras

We formalise Kleene algebra with tests (KAT) and demonic refinement algebra (DRA) in Isabelle/HOL. KAT is relevant for program verification and correctness proofs in the partial correctness setting. While DRA targets similar applications in the context of total correctness. Our formalisation contains the two most important models of these algebras: binary relations in the case of KAT and predic...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1997